home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-05 / aprite.zip / APRITE.DOC < prev    next >
Text File  |  1991-08-31  |  23KB  |  540 lines

  1.  
  2.  
  3.            ╔═══╗              ╔═══════╗                   (WS)
  4.            ║   ║              ║       ║  ║  ║
  5.           ╔╝   ╚╗             ║       ║     ║
  6.           ║     ║             ║       ║     ╠══
  7.           ╠═════╣   ╔═════╗   ╠══╦════╝  ║  ║    ╔═════╗
  8.          ╔╝     ╚╗  ║     ║   ║  ╚╗      ║  ║    ║     ║
  9.          ║       ║  ║     ║   ║   ╚╗     ║  ║    ╠═════╝
  10.          ║       ║  ║     ║   ║    ╚╗    ║  ║    ║ 
  11.                     ╠═════╝                      ╚═════ 
  12.                     ║
  13.                     ║
  14.                     ║
  15.  
  16. *
  17. ApRite / ApRun :    Application System
  18.  
  19. Purpose:
  20.           Grant rights to applications: Run applications with NetWare
  21.           rights that differ from the rights of the person calling the
  22.           application.
  23.           The complete system is based on NetWare security.
  24.  
  25. Features:
  26.           -  Allow users to change user ID while 3rd party applications
  27.              are run.
  28.           -  Multiple security levels based on NetWare security.
  29.           -  Management tool to administer and view the internal rights
  30.              system.
  31.           -  Built-in self test for virus infection.
  32.  
  33. Author:
  34.           Wolfgang Schreiber    (all rights reserved)
  35.  
  36. Components:
  37.           ApRite.EXE          Administration tool
  38.           ApRite.DOC          Documentation
  39.           ApRun.EXE           Launch applications 
  40. *
  41. License:
  42.           This is a fully operable beta version of ApRun/ApRite. It can
  43.           be tested on any number of file servers. About 60 days after
  44.           its installation on a server it will disable itself.
  45.           When the demo time is over, only the options "ApRite /?" and
  46.           "ApRite /Destroy" will remain active.
  47.           Warning: if the system detects a file server date change it
  48.           might disable itself immediately)
  49.  
  50.           The publisher has thoroughly developed and tested the functions
  51.           of ApRun/ApRite but cannot take any liability for adverse
  52.           effects or damage that might be caused by software
  53.           malfunctions, erroneous or incomplete documentation.
  54.  
  55.           The complete product will be published in the 4th quarter of
  56.           1991. Its retail price will be US $99 (site license).  Orders
  57.           can be sent directly to the publisher. International
  58.           distributors wanted.
  59.  
  60. *
  61. Publisher:
  62.           Dr. Wolfgang Schreiber
  63.           Schanzenstr. 74
  64.           4000 Dusseldorf  (Germany)
  65.  
  66.           Fax: (1149) - 211 - 55 64 69
  67.  
  68.           Any comments, suggestions, or error reports are welcome, and
  69.           will result in a new release of ApRun/ApRite.
  70.  
  71.           Written in Borland's TurboPascal v6.0
  72.  
  73. *
  74. Syntax:
  75.           ApRite [parameters]
  76.           ApRun <command>
  77.  
  78.           Accepted parameters:
  79.  
  80.           ApRite /Install
  81.              Initiate or re-initiate application system
  82.  
  83.           ApRite /Destroy
  84.              Delete/Remove the complete application system
  85.  
  86.           ApRite /Masters [+|- <user>]
  87.              List/Define accepted application users
  88.  
  89.           ApRite /SLaves [+|- <user>]
  90.              List/Define users that are accepted as slaves
  91.  
  92.           ApRite /Admin [+|- <user>]
  93.              List/Define application system administrators
  94.  
  95.           ApRite /Allow command<user>
  96.              Allow [user] access to specified command
  97.  
  98.           ApRite /Remove <nr>
  99.              Remove application from application system
  100.  
  101.           ApRite /SHow
  102.              Show status and list current allowed commands
  103.  
  104.           ApRite /STatus [Pause|Cont]
  105.              Show or change application system status
  106.  
  107.           ApRite /?
  108.              Display syntax overview
  109. *
  110. Concepts:
  111.           ApRite is using a concept called 'Application System' and its
  112.           implementation in based on the NetWare concept of a 'Job
  113.           Server'.
  114.  
  115.           ApRite uses the terms 'Application System', 'MASTER', 'SLAVE',
  116.           'ADMINISTRATOR', 'COMMAND', and 'OPTIONS'. Usage of those terms
  117.           must be explained shortly.
  118.  
  119.           Application System: The term 'application system' is used to
  120.           describe the complete environment supplied by ApRite and ApRun
  121.           to support rights granted to applications.
  122.           The application system must be initialized by the Supervisor or
  123.           an equivalent before users can access it.
  124.  
  125.           To explain the other concepts we will refer to some command
  126.           lines as examples (assumed that U_M and U_S are valid user
  127.           names):
  128.  
  129.           1) "ApRite /Allow SYSCON U_M"    issued by U_S (Slave)
  130.           2) "ApRite /Allow FILER"         issued by U_S (Slave)
  131.           3) "ApRun SYSCON"                issued by U_M (Master)
  132.  
  133.           SLAVE: A slave is a NetWare user who grants his/her NetWare
  134.           rights to a master, whenever the master will call a specified
  135.           program.
  136.           A slave must have been admitted to the application system by
  137.           the SUPERVISOR ("ApRite /SLaves ...").
  138.           The slave must have specified the commands (and its accepted
  139.           masters) that can be run in his/her name, before any master can
  140.           run an application in the name of a slave, ("ApRite /Allow
  141.           ...").
  142.           In the example given above the user U_S gives the user U_M the
  143.           right to call SYSCON with the rights of user U_S (command 1).
  144.           Then U_S allows every legitimate application system master to
  145.           run FILER in the name of U_S (command 2).
  146.  
  147.           MASTER: A master is a NetWare user who is logged in to a
  148.           NetWare file server and wants to run an application with
  149.           different rights than those that he usually has.
  150.           Masters must have been admitted to the application system by
  151.           the SUPERVISOR ("ApRite /Masters ...").
  152.           A master can issue a program call with the rights of a 'slave'
  153.           if the slave has allowed (this master) to run an application in
  154.           his/her name.
  155.  
  156.           COMMAND/OPTIONS: A standard DOS command line usually contains
  157.           the (path and) name of an executable command (with or without
  158.           additional options/parameters).
  159.           The term 'Command' in this script includes all characters up to
  160.           the first blank in the command line. It consists of an optional
  161.           valid DOS path followed by a file name and it may include the
  162.           extension of the application.
  163.           The term 'Options' refers to everything that follows the first
  164.           blank in the normal DOS call.
  165.  
  166.           ADMINISTRATOR: An application system administrator can view and
  167.           change the status of the application system. The administrator
  168.           can see all allowed applications, can remove specific
  169.           applications from the system, can halt or restart the system.
  170.           By default only the person who installs the application system
  171.           is created as system administrator.
  172.           New administrators can be defined by the supervisor ("ApRite
  173.           /Admin ...").
  174.  
  175. *
  176. Installation:
  177.           -  Copy all files from the installation disk to a NetWork
  178.              directory;
  179.           -  Setup the system by calling "ApRite /Install"
  180.           -  Define legitimate slaves with  "ApRite /Slaves ..."
  181.           -  Define legitimate masters with "ApRite /Masters ..."
  182.           -  A legitimate slave grants application rights with "ApRite
  183.              /Allow ..."
  184.           -  Legitimate masters now can call "ApRun" to start the
  185.              admitted applications.
  186.  
  187. *
  188. Quick Start:
  189.           Within 5 minutes you can get a quick impression of the
  190.           capabilities of ApRun:
  191.           1) Initiate ApRun:
  192.              "ApRite /Install"
  193.           2) Give a second user (e.g. GUEST) the right to run SYSCON in
  194.              your name:
  195.              "ApRite /Allow SYSCON GUEST"
  196.           3) Login as GUEST and run SYSCON (with/without ApRun):
  197.              "ApRun SYSCON"
  198.  
  199.           If you want to remove GUEST's privileges you have two choices:
  200.  
  201.           4a) Login as Supervisor and revoke the privileges:
  202.              "ApRite /Remove <nr>"      [Insert appr allowance nr]
  203.           4b) Remove GUEST from the list of accepted masters:
  204.              "ApRite /Master - GUEST"
  205.  
  206. *
  207. Security:
  208.           The application system includes several layers of protection to
  209.           ensure that only accepted users get access to the system:
  210.           -  only a Supervisor can initiate the system;
  211.           -  only specified users can get access to the system; they must
  212.              have been admitted to the system as 'slaves' or 'masters' by
  213.              the supervisor;
  214.           -  the user ('slave') who gives his rights to other users
  215.              ('masters') must actively allow those users access to
  216.              specified applications;
  217.           -  only the specified applications can be called; use of these
  218.              applications can be restricted to specified persons;
  219.           -  the master can call the selected applications only if those
  220.              applications have not been changed since access was granted;
  221.           -  the supervisor or an assigned 'administrator' can remove
  222.              specified applications from the system;
  223.           -  the supervisor or administrator can monitor and change the
  224.              current status of the application system.
  225.  
  226.           -  The automatic self test for virus infection will display a
  227.              warning if ApRite.EXE is infected by a virus.
  228.  
  229. *
  230. Limitations:
  231.           Due to NetWare limitations and ApRun's implementation there are
  232.           several aspects administrators should keep in mind.
  233.  
  234.           -  Number of application configurations: The list of accepted
  235.              application/rights configurations may include approximately
  236.              200 entries. Customized versions are available on request.
  237.           -  Memory: since ApRun.EXE has to stay in memory while it
  238.              changes the rights of a master to the rights of the slaves,
  239.              and since it has to stay active until the original rights
  240.              are restored, there is only a restricted area of RAM
  241.              available to slave applications.
  242.              Generally ApRun.EXE takes about 30 kB of RAM during the
  243.              execution of slave applications. The RAM available to
  244.              applications will be higher if those are COM or EXE files,
  245.              a little less with BAT files (since ApRun uses COMMAND.COM
  246.              to run batch jobs).
  247.              If memory is a problem, you might consider to use 3rd party
  248.              memory manager (like HIMEM, EMM386, or QEMM386) to load some
  249.              drivers and TSRs to high memory areas. DOS v4.x will usually
  250.              leave less memory to applications than DOS v3.x or v5.x.
  251.           -  Multitasking: if ApRun is used in a multitasking environ-
  252.              ment, ALL tasks will change to the slave's identity as long
  253.              as one task runs an application with ApRun. Similar
  254.              considerations apply to task switching environments like
  255.              DR-DOS v6.x or MS-DOS v5.x.
  256.           -  TSR programs: The complete station of the master will
  257.              receive the rights and identity of the slave during program
  258.              execution. Obviously this will affect TSRs that have been
  259.              loaded previously, too. Therefore TSRs might in some cases
  260.              represent a breach in security since they receive the same
  261.              rights as the legitimate application.
  262.           -  Application Updates / Program changes: If a slave allows
  263.              access to an application ApRun tries to ensure that this
  264.              program is run without any changes. Future masters can run
  265.              the accepted application only in its current form (for
  266.              security reasons). Any changes to the program will prevent
  267.              masters from being able to start that application. The slave
  268.              has to re-allow access whenever an application is modified.
  269.  
  270.           Due to the above mentioned limitations the following
  271.           suggestions are strongly recommended:
  272.  
  273.           -  Do not run active background applications in multi-tasking
  274.              environments. Since those background applications' rights
  275.              are also changed, they might create unexpected results.
  276.           -  Create special users who only have the rights to run one
  277.              application. The trustee rights of those users might include
  278.              only a single directory. Accept only those user names as
  279.              slaves.  Take into account that background applications
  280.              (e.g. TSRs, Windows applications) receive the slave's
  281.              rights, too.
  282.  
  283.  
  284. *
  285. Syntax:      ApRite [/parameter]
  286.  
  287.           All options of ApRite can be abbreviated as long as those
  288.           shortcuts are unique: "ApRite /I" or "ApRite /SH" are valid
  289.           shortcuts.
  290.  
  291.           This overview presents optional parameters within square
  292.           brackets "[xxx]", user supplied names (e.g. user names or
  293.           commands) in angle brackets "<xxx>". Upper vs. lower case
  294.           letters do not make any difference.
  295.  
  296. *
  297. ApRite /?
  298.           Display syntax overview 
  299.  
  300.           This command give an overview over the features and available 
  301.           parameters of ApRite.EXE with basic explanations of their effects.
  302.  
  303.           Example:  ApRite /?
  304.  
  305. *
  306. ApRite /Install
  307.           Initiate or Re-Initiate application system
  308.  
  309.           Before using any of the following ApRite parameters the
  310.           application system has to be established.
  311.           The installation procedure will only take about a second and
  312.           will initiate security and all relevant variables.
  313.           None of the ApRite/ApRun application parts stays resident in a
  314.           workstation's RAM. The application system uses similar bindery
  315.           security as NetWare itself; it will store all security
  316.           information in the NetWare bindery.
  317.  
  318.           WARNING: When "ApRite /Install" is issued a second time, it
  319.           will completely reset the application system: all masters,
  320.           slaves, administrators, or information about accepted
  321.           applications will be removed.
  322.           If you unintentionally have run "ApRite /Install" a second
  323.           time, you might recover your previous status by restoring a
  324.           backup copy of the bindery.
  325.  
  326.           This option is for supervisors only.
  327.  
  328.           Example:  ApRite /Inst
  329. *
  330. ApRite /Destroy
  331.           Delete/Remove the complete application system
  332.  
  333.           This option can be used to completely remove the application
  334.           system structure from your file server.
  335.           The only way to recover from the effects of "/Destroy" is to
  336.           restore your previous bindery from backup media.
  337.  
  338.           This option is for supervisors only.
  339.  
  340.           Example:  ApRite /Dest
  341.  
  342. *
  343. ApRite /Masters [+|- <user>]
  344.           List/Define accepted application users
  345.  
  346.           See the discussion of the master-slave concept above. Masters
  347.           are NetWare users that are allowed to take the identity and
  348.           rights of a 'slave' while a program is executed. Only the users
  349.           admitted to the application system as masters are allowed to
  350.           run applications with the temporary ID of a slave.
  351.  
  352.           Before a slave can specify a user as master (that means the
  353.           master gets the right to run the application in the slave's
  354.           name) the supervisor must have admitted the future master to
  355.           the application system. This is done with "ApRite /Masters ..."
  356.  
  357.           Specifying '+' will add new masters, '-' will remove existing
  358.           masters.
  359.  
  360.           Only users - no groups - can be accepted as masters.
  361.  
  362.           A slave with supervisor rights can implicitly add masters with
  363.           the "/Allow" option (see there).  This option is for
  364.           supervisors only.
  365.  
  366.           Example:  ApRite /Master + guest
  367.                     ApRite /Master - guest
  368.                     ApRite /Ma + guest
  369.  
  370. *
  371. ApRite /SLaves [+|- <user>]
  372.           List/Define users that are accepted as slaves
  373.  
  374.           See the discussion of the master-slave concept above. Slaves
  375.           are NetWare users whose rights are transferred to a master
  376.           while a program is executed.
  377.           Only the users admitted to the application system as slaves are
  378.           allowed to transfer their rights to a application user
  379.           (master).
  380.  
  381.           Before any slave can allow an application to be run in the
  382.           slave's name, the supervisor must have admitted the user as
  383.           slave to the application system. This is done with "ApRite
  384.           /SLaves ..."
  385.  
  386.           Specifying '+' will add new slaves, '-' will remove existing
  387.           slaves.
  388.           Users and groups can be accepted as slaves.
  389.  
  390.           This option is for supervisors only.
  391.  
  392.           Example:  ApRite /Slave + guest
  393.                     ApRite /Slave - guest
  394.                     ApRite /SL + everyone
  395.  
  396. *
  397. ApRite /ADmin [+|- <user>]
  398.           List/Define application system administrators
  399.  
  400.           An administrator can monitor the status of the application
  401.           system, view the list of accepted slaves, masters, and
  402.           applications, and remove specific applications from the system.
  403.           The administrator is comparable to a queue operator in the
  404.           printing environment.
  405.  
  406.           Specifying '+' will add new administrators, '-' will remove
  407.           existing administrators.
  408.  
  409.           Users and groups can be accepted as slaves.
  410.  
  411.           This option is for supervisors only.
  412.  
  413.           Example:  ApRite /Admin + guest
  414.  
  415. *
  416. ApRite /ALlow  [command[<user>]]
  417.           Allow [user] access to specified command
  418.  
  419.           The option "/Allow" enables a slave to specify, what command is
  420.           allowed to be executed in his/her name. This option adds the
  421.           new command to the list of accepted commands. An accepted
  422.           master is thereby enabled to run this command in the name of
  423.           the slave.
  424.  
  425.           The command must contain the filename and may include an
  426.           optional drive/path specification and/or extension. ApRite
  427.           searches for the specified command file to add it to its list,
  428.           so the application must be in the default drive or in one of
  429.           the search drives, if no path is specified.
  430.  
  431.           The specified command can be located on a local drive or second
  432.           file server, but the rights change will always affect only the
  433.           current default server.
  434.  
  435.           If the application (and optional master) are accepted by the
  436.           system, it will display the new list of accepted applications.
  437.           Each registered application automatically receives a unique
  438.           application ID. This ID can be used to remove specific
  439.           applications from the system (if desired).
  440.  
  441.           All valid file names will be accepted, but only COM, EXE, and
  442.           BAT files give sense.
  443.  
  444.           To use the parameter "/ALLOW" the user needs to be in the list
  445.           of accepted slaves, and he/she needs search/file scan rights in
  446.           the directory of the specified command.
  447.  
  448.           If "ApRite /ALlow" is not followed by a command, it will list
  449.           the current accepted applications entered by the user.
  450.  
  451.           If no user is specified after the command, the application can
  452.           be started by any accepted master. If the specified user is
  453.           unknown or not accepted as master the command will not execute.
  454.           If a supervisor equivalent specifies a user that is no master
  455.           yet, the system will automatically add the user to the master
  456.           list.
  457.  
  458.           Only users - no groups - can be accepted as masters.
  459.  
  460.           This option is for supervisors and accepted slaves only.
  461.  
  462.           Example:  ApRite /Allow syscon
  463.                     ApRite /Allow syscon.exe guest
  464.                     ApRite /Al k:\sub\this.bat guest
  465. *
  466. ApRite /Remove <nr>
  467.           Remove application from application system
  468.  
  469.           Every entry in the list of accepted applications can be
  470.           identified by its entry ID.
  471.  
  472.           Applications can be removed from the system list by a system
  473.           administrator or by the slave who added the entry to the list.
  474.  
  475.           This option is for supervisors and administrators only.
  476.  
  477.           Example:  ApRite /Remove 473
  478. *
  479. ApRite /STatus [Pause|Continue]
  480.           Show or change application system status
  481.  
  482.           Comprehensive system status information is displayed.
  483.  
  484.           In addition to the status display a supervisor or administrator
  485.           can change its status. 'Pause' will de-activate the application
  486.           system without destroying any of the stored information:
  487.           Currently active ApRun applications can be continued, but no
  488.           master can start new ApRun commands. 'Continue' will
  489.           re-activate the application system.
  490.  
  491.           This option is for supervisors, administrators, and the
  492.           initiator slaves only.
  493.  
  494.           Example:  ApRite /Status
  495.                     ApRite /St pause
  496.                     ApRite /St Con
  497. *
  498. ApRite /SHow
  499.           Show status and list current allowed commands
  500.  
  501.           '/SHow' will not only display the short status report, but
  502.           additionally list the current accepted slaves, masters,
  503.           administrators, and applications. If applications are in use by
  504.           masters, their names will be displayed.
  505.  
  506.           This option is for supervisors and administrators only.
  507.  
  508.           Example:  ApRite /Show
  509.  
  510. *
  511. ApRun <command> [parameter list]
  512.           Run applications with another identity
  513.  
  514.           If an accepted master wants to start an accepted application in
  515.           the name of a slave, the command must be launched by ApRun.
  516.           Without ApRun the application would run with the normal rights
  517.           of the program caller.
  518.  
  519.           The command can be followed by the parameters as required by
  520.           the launched application's syntax. Use the normal command
  521.           syntax, and simply add 'ApRun' at the beginning of the command
  522.           line.
  523.  
  524.           Masters who want to launch applications need Search/File Scan
  525.           rights in the application directory. If the command is not to
  526.           be found in one of the master's search drives, it must include
  527.           a drive/path specification.
  528.  
  529.           ApRun.EXE will use approximately 30 Kb of the workstation RAM
  530.           while the launched application is running. It therefore limits
  531.           the RAM available to that application. Since ApRun is not a TSR
  532.           program it will not stay in the workstation memory except
  533.           during the execution of the launched program.
  534.  
  535.           This option is for accepted masters only.
  536.  
  537.           Example:  ApRun fconsole
  538.                     ApRun NCOPY Z:*.* k: /sub
  539.                     ApRun C:\this.bat par1 par2
  540.